#pragma once
#define CALLAPI STDMETHODCALLTYPE

#include <common/auto_ptr.hpp>
#include <common/object_impl.hpp>
namespace JOUI
{
	EXINTERFACE("93C0E397-C193-46E5-B390-BDB74731B79F") IExLayout : public IUnknown
	{
	 EXMETHOD BOOL CALLAPI Layout_Init(INT nType) PURE;
	 EXMETHOD BOOL CALLAPI Layout_Update() PURE;
	 EXMETHOD INT CALLAPI Layout_GetType() PURE;
	 EXMETHOD BOOL CALLAPI Layout_SetChildProp(LPVOID parent, INT dwPropID, size_t pvValue) PURE;
	 EXMETHOD BOOL CALLAPI Layout_SetProp(INT dwPropID, size_t pvValue) PURE;
	 EXMETHOD BOOL CALLAPI Layout_Absolute_Lock(LPVOID hObjChild, INT tLeft, INT tTop, INT tRight, INT tBottom, INT tWidth, INT tHeight) PURE;
	 EXMETHOD BOOL CALLAPI Layout_Absolute_Setedge(LPVOID hObjChild, INT dwEdge, INT dwType, size_t nValue) PURE;
	 EXMETHOD BOOL CALLAPI Layout_AddChild(LPVOID parent) PURE;
	 EXMETHOD BOOL CALLAPI Layout_AddChildren(BOOL fDesc, LPCWSTR dwObjClass, INT* nCount) PURE;
	 EXMETHOD BOOL CALLAPI Layout_DeleteChild(LPVOID parent) PURE;
	 EXMETHOD BOOL CALLAPI Layout_DeleteChildren(LPCWSTR dwObjClass = NULL) PURE;

	};
}

